home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_02 / saks / mix.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-14  |  918 b   |  47 lines

  1. Listing 1 - a class hierarchy that mixes virtual and non-virtual 
  2. overriding
  3.  
  4. #include <iostream.h>
  5.  
  6. class B
  7.     {
  8. public:
  9.     virtual void f();   // virtual
  10.     void g();           // non-virtual
  11.     virtual void h();   // virtual
  12.     void j();           // non-virtual
  13.     };
  14.  
  15. void B::f() { cout << "B::f()\n"; }
  16.  
  17. void B::g() { cout << "B::g()\n"; }
  18.  
  19. void B::h() { cout << "B::h()\n"; }
  20.  
  21. void B::j() { cout << "B::j()\n"; }
  22.  
  23. class C : public B
  24.     {
  25. public:
  26.     void f();           // virtual
  27.     void g();           // non-virtual
  28.     virtual void j();   // virtual
  29.     };
  30.  
  31. void C::f() { cout << "C::f()\n"; }
  32.  
  33. void C::g() { cout << "C::g()\n"; }
  34.  
  35. void C::j() { cout << "C::j()\n"; }
  36.  
  37. class D : public C
  38.     {
  39. public:
  40.     void h();           // virtual
  41.     void j();           // virtual
  42.     };
  43.  
  44. void D::h() { cout << "D::h()\n"; }
  45.  
  46. void D::j() { cout << "D::j()\n"; }
  47.